<?php

/* TODO: Add code here */
/**
 * Lớp đối tượng của Manu phụ trách tương tác với cơ sở dữ liệu và những phương thức khác liên quan.
 * 
 **/
class user_manufactory
{
	#region user_common
	
	const ACT_ADD							= 10;
	const ACT_UPDATE						= 11;
	const ACT_DELETE						= 12;
	const ACT_CHANGE_PAGE					= 13;
	const ACT_SHOW_EDIT = 14;
	const NUM_PER_PAGE = 10;
	
	const TBL_T_MANU			= 't_manufactory';
	
	const SQL_INSERT_MANU				= 'INSERT INTO `{0}`
		(`manu_id`,`name`,`detail`) 
		VALUES(\'{1}\',\'{2}\',\'{3}\');';
	const SQL_UPDATE_MANU				= 'UPDATE `{0}`
														SET 
														  `name` = \'{1}\',
																`detail` = \'{2}\'
														WHERE `manu_id` = \'{3}\';';
														
	const SQL_CREATE_TABLE_T_MANU		= 'CREATE TABLE `{0}` (
										  `manu_id` bigint(20) NOT NULL COMMENT \'Mã nhà sản xuất tăng tự động\',
										  `name` char(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT \'Tên nhà sản xuất\',
										  `detail` text COLLATE utf8_unicode_ci COMMENT \'Thông tin thêm về nhà sản xuất\',
										  `delete_flag` tinyint(4) DEFAULT NULL COMMENT \'0: avaiable,1 : delete\',
										  PRIMARY KEY (`manu_id`)
										) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;';
	#end region
	
	
	#region Variables
	var $_objConnection;
	#end region
	
	
	#region Contructors
	/**
	*  Phương thức khởi tạo đối tượng faq đồng thời tạo connection đến db
	*
	* @param object $objConnection Đối tượng kết nối đến db
			
	* @return void 
	*
	*/
	public function user_manufactory($objConnection)
	{
		$this->_objConnection = $objConnection;
		
	}
	#end region
	
	
	#region Private Functions
	
	#end region
	
	
	#region Public Functions
	
	/**
	 * Thêm mới một nhà sản xuất
	 *
	 * @param int $m_manu_id Mã nhà sản xuất
	 * @param int $m_cat_id Mã nhóm
	 * @param string $name Tên sản phẩm
	 * @param string $m_image Tên file hình ảnh
	 * @return bool True->Thành công, False->thất bại
	 *
	 */
	public function insert($name,$detail) 
	{
		$intID = user_common::getMaxID(self::TBL_T_MANU);
		$strSQL = user_common::prepareQuery(self::SQL_INSERT_MANU,
				array(self::TBL_T_MANU,$intID,user_common::escape_mysql_string($name),user_common::escape_mysql_string($detail) ));
		
		if (!user_common::ExecutequeryWithCheckExistedTable($strSQL,self::SQL_CREATE_TABLE_T_MANU,$this->_objConnection,$strTableName))
		{
			//echo $strSQL;
			user_common::writeLog('Error add manu:'.$strSQL,1);
			return false;
		}	
		return $intID;
		
	}
	
	/**
	 * Thêm mới một nhà sản xuất
	 *
	 * @param int $m_manu_id Mã nhà sản xuất
	 * @param int $m_cat_id Mã nhóm
	 * @param string $name Tên sản phẩm
	 * @param string $m_image Tên file hình ảnh
	 * @return bool True->Thành công, False->thất bại
	 *
	 */
	public function update($intID,$name,$detail) 
	{
		$strSQL = user_common::prepareQuery(self::SQL_UPDATE_MANU,
				array(self::TBL_T_MANU,user_common::escape_mysql_string($name),user_common::escape_mysql_string($detail),$intID ));
		
		if (!user_common::ExecutequeryWithCheckExistedTable($strSQL,self::SQL_CREATE_TABLE_T_MANU,$this->_objConnection,$strTableName))
		{
			//echo $strSQL;
			user_common::writeLog('Error add manu:'.$strSQL,1);
			return false;
		}	
		return $intID;
		
	}
	
	
	public function getManuByID($m_id,$selectField='*') 
	{
		$strSQL .= user_common::prepareQuery(user_common::SQL_SELECT_FREE, array($selectField, self::TBL_T_MANU ,' where `manu_id`=\''.$m_id.'\' '));
		//echo '<br>SQL:'.$strSQL;
		$arrResult =$this->_objConnection->selectCommand($strSQL);
		//print_r($arrResult);
		//echo '<br>';
		if(!$arrResult[0])
		{
			user_common::writeLog('getManuByID:'.$strSQL,1,$_mainFrame->pPage);
			return null;
		}	
		//print_r($arrResult);
		return $arrResult[0];
	}
	
	/**
	 * Hàm lấy tất cả record của c_doc_xxxx dựa vào danh sách doc_id truyền vào dùng cho việc search.
	 *	
	 * @param string $selectField Cho biết các field cần lấy.
	 * @return array Danh sách record 
	 * @author ThanhViet added [20101005]
	 */
	public function getAllManufactory($selectField='*') 
	{
		/*$arrDocID = Array();
		foreach($listID as $item)
		{
			$arrDocID[$item['id']] = $item['id'];
		}*/
		//echo '<br>count:'.count($listID);
		
		$strSQL .= user_common::prepareQuery(user_common::SQL_SELECT_FREE, array($selectField, self::TBL_T_MANU ,' order by name'));
		//echo '<br>SQL:'.$strSQL;
		$arrResult =$this->_objConnection->selectCommand($strSQL);
		//print_r($arrResult);
		//echo '<br>';
		if(!$arrResult)
		{
			user_common::writeLog('getAllManufactory:'.$strSQL,1,$_mainFrame->pPage);
			return null;
		}	
		//print_r($arrResult);
		return $arrResult;
	}
	
	
	
	/**
	 * This is method outputHTMLSection select option
	 *
	 * @param mixed $arrFaq This is a description
	 * @param mixed $strKeyword This is a description
	 * @return mixed This is the return value description
	 *
	 */
	public function outputHTMLOptionManufactory($arrSection)
	{
		$strHTML = '<select id="txtManu" name="txtManu" value="" style="width: 50%;" >';
		$strHTML .= '<option value="0">--Chọn nhà sản xuất--</option>';
		
		foreach($arrSection as $item)
		{
			$strHTML .= '<option value="'.$item['manu_id'].'">'.$item['name'].'</option>';
		}
		$strHTML .= '</select>';
		return $strHTML;
	}
	
	
	/**
	 * Phương thức trình bày thông tin của trang san pha
	 *
	 * @param int $intPage Trang hiện tại
	 * @param mixed $where This is a description
	 * @return string Chuỗi HTML hiển thị
	 *
	 */
	public function getListManu($intPage, $where)
	{
		$strSQL .= user_common::prepareQuery(user_common::SQL_SELECT_FREE,array('*',
					self::TBL_T_MANU,' WHERE delete_flag IS NULL or delete_flag=\'0\' ORDER BY `name` ASC  limit '.(($intPage-1)* self::NUM_PER_PAGE).','.self::NUM_PER_PAGE));
		
		$arrManu = $this->_objConnection->selectCommand($strSQL);
		//print_r($arrManu);
		$strHTML = ' <table class="tbl-list">
				<thead>
				<td>Tên</td>
				<td>Mô tả</td>
				<td>Display</td>
				<td class="lastCell"></td>
				</thead>
				<tbody>';
		$icount = count($arrManu);
		for($i=0;$i<$icount;$i++)
		{
			$strHTML.='<tr class="'.($i%2==0?'even':'odd').'">
					<td>'.$arrManu[$i]['name'].'</td>
					<td>'.$arrManu[$i]['detail'].'</td>
					<td><input type="checkbox" onclick="objArticleMn.showHideArticle(this)" '.($arrManu['delete_flag']?'':'checked=checked').' /></td>
					<td class="lastCell"><b><a href="javascript:_objManufactory.showEdit(\''.$arrManu[$i]['manu_id'].'\',this);">Edit</a></b></td>
					</tr>';
		}
		$strHTML.='</tbody></table>';
		
		$strHTML .= "<div>".user_common::getPagingHTMLByNum($intPage,self::NUM_PER_PAGE,user_common::getTotalRecord(self::TBL_T_MANU,$this->_objConnection),
				"_objManufactory.changePage")."</div>";
		return $strHTML;
	}
	
	#end region
}

?>